package com.atao.baokede.mapper;

import com.atao.baokede.pojo.ChargeOrder;
import com.atao.baokede.pojo.Item;
import com.atao.baokede.pojo.Merchant;
import com.atao.baokede.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface AdminMapper {
    // 管理员同意商品
    @Update("update item set status = #{status} where id = #{itemId}")
    void agreeItem(Long itemId,int status);

    // 管理员拒绝商品
    @Update("update item set status = #{status} where id = #{itemId}")
    void refuseItem(Long itemId,int status);

    // 禁用用户
    @Update("update user set status = 2 where id = #{userId}")
    void disableUser(Long userId);

    // 禁用商户
    @Update("update merchant set status = 3 where id = #{merchantId}")
    void disableMerchant(Long merchantId);

    // 启用用户
    @Update("update user set status = 1 where id = #{userId}")
    void enableUser(Long userId);

    // 启用商户
    @Update("update merchant set status = 1 where id = #{merchantId}")
    void enableMerchant(Long merchantId);

    // 根据用户名模糊查询用户
    List<User> findUserByName(String keyword);

    // 根据商户名模糊查询商户
    List<Merchant> findMerchantByName(String  keyword);

    // 根据用户ID列表批量查询用户信息
    List<User> findUsersByIds(List<Long> userIds);

    // 根据用户id和orderNoKeyword模糊查询用户余额支付订单（已付款的）
    List<ChargeOrder> findUserBalancePayOrdersByKeyword(Integer status,List<Long> userKeyword, String orderNoKeyword);

    // 根据商品状态和商品信息模糊查询商品
    List<Item> findItemsByStateAndInformation(Integer state, String itemKeyword, String itemCategory, String itemBrand);
}
